import { get, post } from '@/utils/http';

const Login = {
    // #ifdef MP-WEIXIN
    /**
	 * 微信获取手机号
     * @param {object} params
     * @param {string} params.code
	 * @returns
	 */
	getMiniProgramPhoneNumber( params ) {
		return get(`/u/dental/miniProgram/phoneNumber/get`, params, { apiLevel: 'api' });
	},
    // #endif

    /**
     * 滑动校验 发送验证码接口（腾讯云验证码）
     * @param {object} params
     * @param {string} params.captchaAccessType // 腾讯云验证码接入类型 webOrApp: 网页或app , miniProgram: 小程序
     * @param {string} params.captchaType // 腾讯云验证码类型 滑动拼图 slide（默认） 文字点选：textClick 图片点选：photoClick VTT空间语义：vtt 无感验证：senseless
     * @param {string} params.ticket // 腾讯云票据
     * @param {string} params.template // 注册 validCode.userReg/ 手机绑定/登录/申请注销 validCode.changeInfo /
     * @param {string} params.source // 来源，不同来源会有不同的逻辑 login 登录 register 注册 bind绑定
     * @param {string} params.sign // 齿科云平台为 dental, 通行证为 shining3d
     * @param {string} params.lang // 语言
     * @param {string} params.username // 登录账号,邮箱或手机号，注意如果是手机号，必须要有下面合适的区号
   
     * @returns
     */
	tencentValidate( params ) {
		return post(`/user/tencent/validate`, params, { apiLevel: 'api', isCsrf: true, apiName: 'tencentValidate' });
	},

    /**
     * 密码登录
     * @param {object} params
     * @param {string} params.lang
     * @param {string} params.loginType
     * @param {string} params.sourceFrom
     * @param {string} params.phoneArea
     * @param {string} params.username
     * @param {string} params.password
     * @returns
     */
	login( params ) {
		return post(`/login?withDentals=true&withPerms=true`, params, { apiLevel: 'api', apiName: 'login' }); 
	},

    /**
     * 验证码登录
     * @param {object} params
     * @param {string} params.captchaAccessType // 腾讯云验证码接入类型 webOrApp: 网页或app , miniProgram: 小程序
     * @param {string} params.captchaType // 腾讯云验证码类型 滑动拼图 slide（默认） 文字点选：textClick 图片点选：photoClick VTT空间语义：vtt 无感验证：senseless
     * @param {string} params.ticket // 腾讯云票据
     * @param {string} params.loginType 登录类型，用于区别应用来源，同一应用使用同样的登录类型，不同应用应该要尽可能分开，注意同一应用只允许同一账号同时登录1次
     * @param {string} params.phoneArea
     * @param {string} params.username
     * @param {string} params.validCode
     * @param {string} params.uuid
     * @returns
     */
	validCodeLogin( params ) {
		return post(`/user/tencent/codelogin?withDentals=true&withPerms=true`, params, { apiLevel: 'api', isCsrf: true, apiName: 'validCodeLogin' });
	},
    
    // #ifdef MP-WEIXIN
    /**
     * 微信登录 - 第三方登陆用户信息校验
     * @param {object} params
     * @param {string} params.lang
     * @param {string} params.origin // 登录类型 用于区别应用来源，同一应用使用同样的登录类型，不同应用应该要尽可能分开，注意同一应用只允许同一账号同时登录1次
     * @param {string} params.platform // productCloud，sdkCloud，dentalCloud
     * @param {string} params.codeOrToken
     * @param {string} params.loginType // wechat/google/miniprogram
     * @returns
     */
	oAuth2Login( params ) {
		return post(`/oauth?withDentals=true&withPerms=true`, params, { apiLevel: 'api', apiName: 'oAuth2Login' });
	},
    /**
     * 微信登录绑定帐号
     * @param {object} params
     * @param {string} params.captchaType // 腾讯云验证码类型 滑动拼图 slide（默认） 文字点选：textClick 图片点选：photoClick VTT空间语义：vtt 无感验证：senseless
     * @param {string} params.isMarketMailSubscribed // 是否订阅营销邮件
     * @param {string} params.platform // productCloud，sdkCloud，dentalCloud
     * @param {string} params.openId // OAuthApi接口返回的openId字段
     * @param {string} params.unionID // 微信开放平台unionID字段
     * @param {string} params.loginType // wechat/google/miniprogram
     * @param {string} params.ticket // 腾讯云票据
     * @param {string} params.phoneArea
     * @param {string} params.lang
     * @param {string} params.source
     * @param {string} params.origin
     * @param {string} params.username
     * @param {string} params.validCode
     * @param {string} params.uuid
     * @returns
     */
	oAuthBind( params ) {
		return post(`/oauth/tencent/bind?withDentals=true&withPerms=true`, params, { apiLevel: 'api', isCsrf: true, apiName: 'oAuthBind' });
	},
    // #endif

    /**
	 * 获取隐私政策｜使用条款
     * @param {string} type
	 * @returns
	 */
	getNotice( type ) {
		return get(`/oigpc/index/cn/${type}`, {}, { apiLevel: 'api', noToast: true });
	},

	/**
	 * 获取用户的第三方账号信息，查看是否绑定微信
	 * @returns
	 */
	queryOauthBindInfo(params) {
		return get(`/oauth/bindinfo`, params, { apiLevel: 'user' });
	},

    /**
	 * 成员归属机构
	 * @returns
	 */
	getAffiliatedOrgs( params ) {
		return get(`/u/dental/member/affiliatedOrgs`, params, { apiLevel: 'user' });
	}
};
export default Login;
